package com.itheima.d1_exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 * 目标：掌握异常的捕获处理try-catch
 */
public class ExceptionTest3 {
    public static void main(String[] args) {
        // 需求：调用一个方法，让用户输入一个合适的日期时间返回为止。

        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入一个日期时间信息：");
            String dateStr = sc.nextLine(); //获取包含空格在内的字符串

            try {
                Date date = parseDate(dateStr);

                System.out.println("解析正常～");
                System.out.println("date = " + date);
                break; //结束循环
            } catch (ParseException e) {
                //捕获异常，意味着也会拦截异常的帅锅
//                e.printStackTrace(); //打印异常栈信息
                System.out.println("报错啦～");
            }

            System.out.println("程序正常运行～");
        }

    }

    public static Date parseDate(String dateStr) throws ParseException {
        //日期格式化异常
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(dateStr); //这里有可能会产生异常。编译报错的意义在于提醒程序员要强制地进行处理
        //option+回车 快速处理
        return date;
    }

}
